syntax = "proto3";

enum OnlineStatus {
  offline = 0;
  online = 1;
};

message Envelope {
  message AltPerson {
    enum Gender {
      male = 0;
      female = 1;
    };
    message Dummy {
      message Empty {};
      repeated Empty empty = 1;
      float z = 2;
    };
    repeated int32 location = 101 [packed=false];
    float pi = 103;
    bytes uuid = 300;
    bool newFieldBool = 299;
    string name = 2;
    Gender gender = 102;
    int32 zodiacSign = 130;
    int64 birthDate = 150;
    bytes age = 111;
    OnlineStatus isOnline = 1;
    double someRatio = 100;
    fixed64 visitTime = 15;
    Dummy newMessage = 1000;
    sfixed64 randomBigNumber = 140;
    repeated int32 newFieldInt = 104;
    repeated float color = 14;
    uint64 lotteryWin = 202;
    bytes surname = 10;
    uint64 phoneNumber = 5;
    sint32 temperature = 41;
    string newFieldStr = 21;
    repeated string measureUnits_unit = 99;
    repeated float measureUnits_coef = 88;
    uint32 nestiness_a_b_c_d = 900;
    repeated uint32 nestiness_a_b_c_e = 901;
  };
};

// same as wrapped in Envelope, used for verification
message AltPerson {
  enum Gender {
    male = 0;
    female = 1;
  };
  message Dummy {
    message Empty {};
    repeated Empty empty = 1;
    float z = 2;
  };
  repeated int32 location = 101 [packed=false];
  float pi = 103;
  bytes uuid = 300;
  bool newFieldBool = 299;
  string name = 2;
  Gender gender = 102;
  int32 zodiacSign = 130;
  int64 birthDate = 150;
  bytes age = 111;
  OnlineStatus isOnline = 1;
  double someRatio = 100;
  fixed64 visitTime = 15;
  Dummy newMessage = 1000;
  sfixed64 randomBigNumber = 140;
  repeated int32 newFieldInt = 104;
  repeated float color = 14;
  uint64 lotteryWin = 202;
  bytes surname = 10;
  uint64 phoneNumber = 5;
  sint32 temperature = 41;
  string newFieldStr = 21;
  repeated string measureUnits_unit = 99;
  repeated float measureUnits_coef = 88;
  uint32 nestiness_a_b_c_d = 900;
  repeated uint32 nestiness_a_b_c_e = 901;
};
